使用ggplot2繪製散佈圖、線圖、直方圖、盒鬚圖與長條圖。


臺北市竊盜案件(2007-2015)

資料簡介

  • 資料集名稱:臺北市行政區竊盜案件
  • 資料來源:臺北市政府主計處
  • 資料欄位:鄉鎮市區名稱、發生件數/總計(件)、發生率(件/十萬人)、破獲件數/總計(件)、破獲率(%)、嫌疑犯人數/總計(件)、犯罪人口率(人/十萬人)
  • 資料內容:2007年至2015年臺北市各行政區竊盜案件統計
## 'data.frame':    108 obs. of  11 variables:
##  $ CityID              : int  63000 63000 63000 63000 63000 63000 63000 63000 63000 63000 ...
##  $ City                : Factor w/ 1 level "臺北市": 1 1 1 1 1 1 1 1 1 1 ...
##  $ TownID              : int  63000010 63000020 63000030 63000040 63000050 63000060 63000070 63000080 63000090 63000100 ...
##  $ TownName            : Factor w/ 12 levels "士林區","大同區",..: 9 10 3 4 5 2 12 7 11 6 ...
##  $ TotalEvent          : int  391 665 642 749 535 436 754 371 260 423 ...
##  $ CrimeRate           : num  186 290 205 324 328 ...
##  $ OffenseClearedNumber: int  310 520 541 637 538 355 653 347 232 375 ...
##  $ ClearanceRate       : num  79.3 78.2 84.3 85 100.6 ...
##  $ Offenders           : int  214 343 319 378 342 253 408 271 133 286 ...
##  $ OffenderRate        : num  102 150 102 164 210 ...
##  $ Year                : int  2015 2015 2015 2015 2015 2015 2015 2015 2015 2015 ...

資料處理

  1. 統計各年度的嫌疑犯人數、破案件數及犯罪發生件數總和。
Sum_Offenders_Year <- aggregate(crime_df$Offenders, by=list(Year=crime_df$Year), FUN=sum)
Sum_OffenseClearedNumber_Year <- aggregate(crime_df$OffenseClearedNumber, by=list(Year=crime_df$Year), FUN=sum)
Sum_TotalEvent_Year <- aggregate(crime_df$TotalEvent, by=list(Year=crime_df$Year), FUN=sum)
  1. 使用merge函數以年份將三個計算結果作合併。
Sum_Year <- merge(Sum_Offenders_Year, Sum_OffenseClearedNumber_Year, all.x = TRUE)
Sum_Year <- merge(Sum_Year, Sum_TotalEvent_Year, all.x = TRUE)
  1. 再用gather函數轉換成長表格,以繪製multiple-line graph。
Sum_Year_long_df <- gather(Sum_Year, key = Category, value = values, Offenders, OffenseClearedNumber,TotalEvent)

圖一說明

  • 2007年至2015年,竊盜犯罪發生總件數從20212件下降至6250件。
  • 破案件數有越來越接近犯罪件數的趨勢。
  • 犯罪人數整體而言為增加的情況。   

圖二說明

  • 不分年份排名竊盜案件數最多的前三名:大安區>中山區>士林區。
  • 很會打擊犯罪的區域,也就是逼近對角線的地方:中正區(2015)、文山區(2015)、南港區(2015)、北投區(2008,2012)   

資料處理

挑出2015年的資料後,選取需要的欄位,再轉換成長表格以繪製多重直方圖。

crime_2015 <- crime_df[crime_df$Year==2015,]
crime_2015_sel <- select(crime_2015,TownName,TotalEvent,OffenseClearedNumber,Offenders)
crime_2015_long_df <- gather(crime_2015_sel, key = Category, value = values, TotalEvent, OffenseClearedNumber,Offenders)

圖三說明

  • 其實這部分從前面幾張圖大致可觀察出來,但想記錄一下轉換長表格的用途以及如何繪製Multiple Bar Graph。
bar2015 <- ggplot(crime_2015_long_df, aes(x = TownName, y = values)) +
  geom_bar(aes(fill = Category),stat = "identity",position = "dodge")+
  ggtitle("2015年臺北市各行政區竊盜犯罪統計") +
  xlab("Town") +
  ylab("Value") + 
  scale_fill_brewer(palette = "Set3", name = "統計項目")
ggplotly(bar2015)

以上都是只看項目的統計總數,但是每個區域的人口數量不一樣,所以只看總數的話可能比較不周全。


圖四說明

  • 犯罪發生率的定義是每十萬人口犯罪發生件數,納入人口因素來看,較高竊盜犯罪率的地方是大同區、中山區、中正區及萬華區。
  • 單就竊盜案件來說,內湖區、文山區和北投區是相對比較安全的地方,要搬到臺北市的話可以考慮這些地方。(但首先要有錢ㄏㄏ)

臺北市各類型犯罪統計(2016)

臺北市較詳細的犯罪資料統計數據目前只有找到竊盜案件,另外還有多種類型的犯罪案件數據,資料比較新但是內容記錄較為粗糙。


資料簡介

  • 資料集名稱:2016年臺北市犯罪資料
  • 資料來源:警政署
  • 資料欄位:案類、發生日期、發生地點
  • 資料內容:毒品、強盜、搶奪、住宅盜竊、汽車竊盜、機車竊盜、強制性交等7案類犯罪發生資料
## 'data.frame':    4958 obs. of  4 variables:
##  $ Time    : int  1050111 1050112 1050121 1050126 1050128 1050205 1050210 1050210 1050212 1050220 ...
##  $ CityName: chr  "臺北市" "臺北市" "臺北市" "臺北市" ...
##  $ TownName: chr  "士林區" "士林區" "士林區" "士林區" ...
##  $ Type    : chr  "住宅竊盜" "住宅竊盜" "住宅竊盜" "住宅竊盜" ...

圖五說明

  • 2016年臺北市各行政區的犯罪案件總數,以毒品為最大宗。   

圖六說明

  • 綜合多種犯罪類型案件來看,中山區、萬華區的犯罪案件遠高於其他區域,可能涉及到不同的地理環境、人文發展和社會經濟因素等。